1. Field of the Invention
The present invention relates to network communications and, more particularly, to a method and system for canceling setup of a packet-based real-time media conference session.
2. Description of Related Art
a. Session Setup
In order to set up a real-time media conference session, an originating station will typically send an invitation message to a conference server. The invitation message will cause the conference server to set up conference legs with the originating station and with one or more designated terminating stations. The conference server will then bridge together the conference legs, thereby allowing the originating station and the terminating stations to communicate with each other via the conference server.
In a typical arrangement, the conference server will set up the conference session by responding to the invitation message sent from the originating station by itself sending an invitation message to a designated terminating station. If the terminating station agrees to participate in the conference session, the terminating station will then send an agreement message to the conference server. And the conference server will then send an agreement message to the originating station.
In turn, the originating station will send an acknowledgement message to the conference server, completing setup of a conference leg between the originating station and the conference server. And the conference server will then responsively send an acknowledgement message to the terminating station, completing setup of a conference leg between the conference server and the terminating station. The conference server may then bridge the conference legs together, to allow the originating and terminating station to communicate.
The messages that pass between the conference server and the various stations could comply with an accepted protocol, such as the well-known Session Initiation Protocol (SIP) for instance. Under SIP, the invitation message could be a SIP “INVITE” message, the agreement message could be a SIP “200 OK” message, and the acknowledgement message could be a SIP “ACK” message. SIP could be used to set up the conference session, and the conference legs could comply with the well-known Real-time Transport Protocol (RTP).
b. Cancellation of Session Setup
Once an originating station sends an invitation message to a conference server, the process of setting up the conference session has begun. In some cases, however, the user of the originating station may wish to cancel setup of the conference session. For instance, if a user of the originating station changes his or her mind about setting up the conference session, the user might invoke a cancel or “end” function on the originating station, which may cause the originating station to send a cancellation message to the conference server. In SIP, the cancellation message could be a SIP “CANCEL” message.
Conventionally, the cancellation message functions to cancel a previous signaling request that has not yet been acted upon completely. For instance, if a first node has sent an invitation message to a second node and the second node has not yet sent an agreement message in response, the first node can send a cancellation message to the second node to cancel the invitation and end the session setup.
A problem, however, can arise when trying to cancel setup of a conference session. In particular, if the originating station has sent an invitation message to the conference server and has not yet received an agreement message in response from the conference server, the originating station might send a cancellation message to the conference server to cancel the conference session. It is possible that in this scenario the conference server has already sent an invitation message to the terminating station and the terminating station has already sent an agreement message to the conference server, when the conference server receives the cancellation message from the originating station. Thus, if the conference server sends a cancellation message to the terminating station, the cancellation message would be ineffective because the terminating station has already acted upon the invitation message that it received from the conference server. In this case, the terminating station would simply ignore any cancellation message sent by the conference server.
In this scenario, the terminating station would assume that a conference session is being set up and would likely alert a user of the new session. However, because the terminating station would ignore the cancellation message, the terminating station would not then alert the user that the session setup has been cancelled. At the same time, however, since the conference server might have received a cancellation message from the originating station before the conference server sent an agreement message to the originating station, setup of a conference leg between the originating station and the conference server would in fact be cancelled. The end result could then be that the terminating station would answer the call only to find that the caller has hung up. This situation is undesirable.